package com.example.dto;

import com.example.model.dto.BaseDTO;
import com.example.validator.group.AddGroup;
import com.example.validator.group.DefaultGroup;
import com.example.validator.group.UpdateGroup;
import jakarta.validation.constraints.*;
import io.swagger.v3.oas.annotations.media.Schema;

import java.io.Serializable;

import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 租户门店表
 *
 * @author yyyyjinying 1020066395@qq.com
 * @since 1.0-SNAPSHOT 2025-04-19
 */
@Data
@Schema(description = "租户门店表")
public class SysStoreDTO extends BaseDTO implements Serializable {
    private static final long serialVersionUID = 1L;
    @Null(message = "{id.null}", groups = AddGroup.class)
    @NotNull(message = "{id.require}", groups = UpdateGroup.class)
    @Schema(description = "门店ID")
    private Long storeId;
    @Schema(description = "租户ID")
    private Long tenantId;
    @NotNull(message = "{id.require}", groups = DefaultGroup.class)
    @Schema(description = "门店名称")
    private String storeName;
    @Schema(description = "是否是总店", required = true)
    private Integer isHeadStore;

    @NotNull(message = "{id.require}", groups = DefaultGroup.class)
    @Schema(description = "门店描述")
    private String description;
    @NotNull(message = "{id.require}", groups = DefaultGroup.class)
    @Schema(description = "纬度")
    private BigDecimal latitude;
    @NotNull(message = "{id.require}", groups = DefaultGroup.class)
    @Schema(description = "经度")
    private BigDecimal longitude;
    @Schema(description = "门店地址")
    private String address;
    @NotNull(message = "{id.require}", groups = DefaultGroup.class)
    @Schema(description = "营业时间")
    private String operatingHours;
    @Schema(description = "门店评分")
    private BigDecimal rating;
    @Schema(description = "客户端主键ids")
    private List<String> clientPrimaryIds; // 客户端主键ids

}